<?php
/**[配置表模型]
 * @Author: 976123967@qq.com
 * @Date:   2014-08-16 14:24:37
 * @Last Modified by:   Administrator
 * @Last Modified time: 2014-12-26 11:45:52
 */
class ConfigModel extends Model{
	protected $tableName='config';
	// 配置信息列表
	public function get_data()
	{
		return $this->order('sort asc,id asc')->select();
	}

	/**
	 * [get_form 读取所有的信息的表单]
	 * @return [type] [description]
	 */
	public function get_form()
	{
		$data = $this->get_data();
		if(!$data) return $data;

		// 组合表单
		foreach($data as $v)
		{
			switch ($v['config_type']) 
			{
				case 1:
					$function = 'img';
					break;
				case 2:
					$function = 'input';
					break;
				case 3:
					$function = 'textarea';
					break;
				case 4:
					$function = 'file';
					break;
			}
			
			$html=$this->$function($v,$v['body']);
			$form[] = array(
				'title'=>$v['title'],
				'form'=>$html,
				'group'=>$v['group'],
				'code'=>$v['code'],
			);
		}

		$result =array();
		// 分组
		foreach($form as  $v)
		{
			$result[$v['group']][]=$v;
		}
		return $result;
	}
	/**
	 * [img 上传]
	 * @param  [type] $field [description]
	 * @param  [type] $value [description]
	 * @return [type]        [description]
	 */
	public function img($field,$value)
	{
		$html = "<input name='{$field['code']}' type='file' />";
		if($value)
		{
			// 图片路径
			$src = __ROOT__."/".$value;
			$html .= "<br/><img src ='{$src}' width='100'/>";
		}
		return $html;
	}
	/**
	 * [file 上传]
	 * @param  [type] $field [description]
	 * @param  [type] $value [description]
	 * @return [type]        [description]
	 */
	public function file($field,$value)
	{
		$html = "<input name='{$field['code']}' type='file' />";
		if($value)
		{
			// 组合下载地址
			$value =str_replace('/', '|', $value);
			$url = U('down')."&name=".$value;
			$html .= "<br/><a href='{$url}'>点击下载</a>";
		}
		return $html;
	}
	/**
	 * [input 单行文本]
	 * @param  [type] $field [description]
	 * @param  [type] $value [description]
	 * @return [type]        [description]
	 */
	public function input($field,$value)
	{
		$html = "<input name='{$field['code']}' value='{$value}' type='text' class='hd-w500 h30'/>";
		return $html;

	}
	/**
	 * [textarea 多行文本]
	 * @param  [type] $field [description]
	 * @param  [type] $value [description]
	 * @return [type]        [description]
	 */
	public function textarea($field,$value)
	{
		$html = "<textarea class='hd-w500 hd-h100' name='{$field['code']}' >{$value}</textarea>";
		return $html;

	}



	/**
	 * [save_config 系统设置]
	 * @return [type] [description]
	 */
	public function save_config()
	{
		$data = $_POST;

		$config = $this->get_data();
		foreach($config as $v)
		{
			if(isset($data[$v['code']]))
			{
				// 组合数组
				$result = array(
					'id'=>$v['id'],
					'body'=>$data[$v['code']]
				);
				$this->save($result);
			}

			// 上传图片
			if($v['config_type']==1)
			{

				// 判断是否有图片上传
				if($_FILES[$v['code']]['name'])
				{

					// 上传类
					import('ORG.Net.UploadFile');
					$upload = new UploadFile();// 实例化上传类
					$upload->maxSize  = 3145728 ;// 设置附件上传大小
		            $upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg','pdf','apk','rar','zip');// 设置附件上传类型
		            $savePath = './Data/Uploads/image/'.date('Y').'/'.date('m').'/'.date('d').'/';
		            // 创建目录
		            is_dir($savePath) || mkdir($savePath,0777,true);
					$info=$upload->uploadOne($_FILES[$v['code']],$savePath);

					// 上传错误
					if(!$info)
					{
						$this->error = $upload->getErrorMsg();
						return false;
					}
					// 保存信息
					$img = $info[0]['savepath'].$info[0]['savename'];
					$saveImg['body'] = $img;
					$saveImg['id'] = $v['id'];
					$this->save($saveImg);
				
					// 删除旧信息
					is_file($v['body']) && unlink($v['body']);
				}
			}

		}
		return true;
	}
 	public function write_config()
 	{
 		// 读取所有的信息
 		$config = $this->get_data();
 		if(!$config) return ;
 		$data = array();
 		// 循环配置
 		foreach ($config as $v) 
 		{
 			$data[$v['code']] = $v['body'];
 		}
 		// 写文件
 		return file_put_contents("Data/Config/config.inc.php", "<?php \nreturn " . var_export($data, true) . ";\n?>");
 	}


}